/**
 * 二维数组，初始势力范围只有一格为(X, Y)，初始战斗力为A[X][Y]
 * 每次可以选择与势力范围四邻域相邻的一格，假设记作r/c
 * 如果当前战斗力不小于Arc，则将该格纳入势力范围，且 当前战斗力 += Arc
 * 
 * 现在要求在游戏开始前，向上调整一次初始战斗力，使得：
 * 1. 可以将所有格子纳入势力范围
 * 2. 满足1的最小值
 * 注意如果无需调整就能通关，则不需要考虑条件2
 * 
 * 直接bfs贪心即可，每次取出领域中权值最小的格子，
 * 如果能够纳入则直接操作，否则必须向上调整战斗力，调整数值为差值
 * 最后可以得到所有必须调整之和，加上初始战斗力即为答案
 */
#include <bits/stdc++.h>
using namespace std;

#include <bits/extc++.h>

using llt = long long;
using pii = pair<int, int>;
using pp = pair<llt, pii>;

int const DR[] = {-1, 1, 0, 0};
int const DC[] = {0, 0, -1, 1};

int N, M, X, Y;
vector<vector<llt>> A;

void proc(){
    __gnu_pbds::priority_queue<pp, function<bool(pp, pp)>> q([](pp a, pp b){
        if(a.first != b.first) return a.first > b.first;
        if(a.second.first != b.second.first) return a.second.first > b.second.first;
        return a.second.second > b.second.second;
    });


    vector<vector<int>> flag(N, vector<int>(M, 0));
    flag[X][Y] = 1;

    llt level = A[X][Y];
    llt ans = 0;
    for(int nr,nc,i=0;i<4;++i){
        nr = X + DR[i], nc = Y + DC[i];
        if(0 <= nr and nr < N and 0 <= nc and nc < M and 0 == flag[nr][nc]){
            flag[nr][nc] = 1; q.push({A[nr][nc], {nr, nc}});
        }
    }
    while(not q.empty()){
        auto h = q.top(); q.pop();

        if(level < h.first){
            ans += h.first - level;
            level = h.first;
        }

        level += h.first;
        for(int nr,nc,i=0;i<4;++i){
            nr = h.second.first + DR[i];
            nc = h.second.second + DC[i];
            if(0 <= nr and nr < N and 0 <= nc and nc < M and 0 == flag[nr][nc]){
                flag[nr][nc] = 1; q.push({A[nr][nc], {nr, nc}});
            }
        }
    }   

    if(0 == ans) return (void)(cout << "No cheating need." << endl);
    cout << ans + A[X][Y] << endl;
    return;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    cin >> N >> M >> X >> Y;
    --X, --Y;
    A.assign(N, vector<llt>(M, 0));
    for(auto & a : A)for(auto & i : a)cin >> i;
    proc();
    return 0;
}